//
//  EmoticonAttachment.swift
//  emotion
//
//  Created by 张衡 on 15/8/12.
//  Copyright © 2015年 张衡. All rights reserved.
//

import UIKit

class EmoticonAttachment: NSTextAttachment {

    // 记录表情符号
    var chs: String?
    
    // 通过表情符号，建立一个使用 `EmoticonAttachment` 建立的属性文本
    class func iamgeText(emoticon: Emoticon, font: UIFont) -> NSMutableAttributedString {
        // 1. 创建图片属性字符串
        let attachment = EmoticonAttachment()
        // 设置图片
        attachment.image = UIImage(contentsOfFile: emoticon.imagePath)
        // 记录表情文字 （我们自己扩展的一个属性）
        attachment.chs = emoticon.chs
        // 设置边界
        let h = font.lineHeight
        // 提示，在scrollow 中，bounds 的原点x,y 就是contentoffset
        attachment.bounds = CGRect(x: 0, y: -2, width: h, height: h)
        
        //            let imageText = NSAttributedString(attachment: attachment)
        
        let imageText = NSMutableAttributedString(attributedString: NSAttributedString(attachment: attachment))
        
        // 添加文本字体属性,（可变类型才可以添加） 文本跟随前一个字符的属性来显示大小，但是图片属性字符没有属性，要手动添加
        // name : 属性的名称
        // value ： 属性值
        imageText.addAttribute(NSFontAttributeName, value: font, range: NSMakeRange(0, 1))
        
        return imageText
    }
}
